import { resolve } from 'path'
import i18nConfig from './i18n.config.js'
// 加载环境变量
// const envConfig = require('dotenv').config({
//   path: `.env.${process.env.ENV}`,
// })

export default {
  // Global page headers: https://go.nuxtjs.dev/config-head
  // env: {
  //   ...envConfig.parsed,
  // },
  head: {
    title: 'larry-blog',
    htmlAttrs: {
      lang: 'en',
    },
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: '' },
      { name: 'format-detection', content: 'telephone=no' },
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
  },

  // Global CSS: https://go.nuxtjs.dev/config-css
  css: ['ant-design-vue/dist/antd.css', '@/assets/styles/tailwind.css'],

  // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
  plugins: [
    '@/plugins/antd-ui',
    '~/plugins/axios',
    '~/plugins/ignoredElements',
    '~/plugins/svg',
    '~/plugins/apis',
    //  '~/plugins/auth'
  ],

  // Auto import components: https://go.nuxtjs.dev/config-components
  components: true,

  // Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
  buildModules: [
    // https://go.nuxtjs.dev/typescript
    '@nuxt/typescript-build',
    // '@nuxtjs/tailwindcss', // 增加tailwindcss
  ],

  // Modules: https://go.nuxtjs.dev/config-modules
  modules: [
    // https://go.nuxtjs.dev/axios
    '@nuxtjs/axios',
    // '@nuxtjs/router',
    // '@nuxtjs/auth',
    'cookie-universal-nuxt',
    ['@nuxtjs/i18n', i18nConfig],
  ],
  // publicRuntimeConfig: {
  //   NUXT_BASE_URL: envConfig.parsed.NUXT_BASE_URL,
  // },
  // Axios module configuration: https://go.nuxtjs.dev/config-axios
  axios: {
    // Workaround to avoid enforcing hard-coded localhost:3000: https://github.com/nuxt-community/axios-module/issues/308
    // baseURL: 'https://mock.mengxuegu.com/mock/65d955a9351bbd02cf339f94',
    baseURL: 'http://111.230.115.177:3002/',
    // baseURL: 'http://localhost:3000',
    // baseURL: envConfig.parsed.NUXT_BASE_URL,
  },

  // Build Configuration: https://go.nuxtjs.dev/config-build
  build: {
    extend(config, _ctx) {
      // 排除 nuxt 原配置的影响,Nuxt 默认有vue-loader,会处理svg,img等
      // 找到匹配.svg的规则,然后将存放svg文件的目录排除
      const svgRule = config.module.rules.find((rule) => rule.test.test('.svg'))
      svgRule.exclude = [resolve(__dirname, 'assets/svgs')]
      // 添加loader规则
      config.module.rules.push(
        {
          test: /\.svg$/, // 匹配.svg
          include: [resolve(__dirname, 'assets/svgs')], // 将存放svg的目录加入到loader处理目录
          use: [
            {
              loader: 'svg-sprite-loader',
              options: { symbolId: 'icon-[name]' },
            },
          ],
        }
        // {
        //   test: /\.txt$/, // 匹配.svg
        //   use: [{ loader: 'raw-loader', options: { esModule: false } }],
        // }
      )
    },
  },
  router: {
    middleware: ['auth'],
  },
  server: {
    host: '0.0.0.0',
    port: 8081,
  },
  // auth: {
  //   strategies: {
  //     local: {
  //       endpoints: {
  //         login: {
  //           url: '/api/login1',
  //           method: 'post',
  //           propertyName: 'data.token',
  //         },
  //         logout: { url: '/api/logout', method: 'get' },
  //         user: {
  //           url: '/api/getUserInfo',
  //           method: 'post',
  //           propertyName: 'data',
  //         },
  //       },
  //     },
  //   },
  //   redirect: {
  //     login: '/login', // 登陆页面，进入需要权限的页面，没有本地 token 就会往这里跳
  //     logout: '/', // 如果注销后当前路由受到保护，用户将被重定向到该路径。
  //     callback: '/login12', // 第三方平台 OAuth2 使用的重定向回来的地址，这里用不到
  //     home: '/my', // 个人主页，如果配置 auth: 'guest' 时，已登录用户访问该页面会跳到该地址（也就是限于访客）
  //   },
  //   cookie: {
  //     options: {
  //       maxAge: 60 * 60 * 24 * 7,
  //     },
  //   },
  //   localStorage: false,
  // },
}
